草庐IT

Java 对象和类

全部标签

javascript - 用于 javascript 对象的安全属性引用的库函数

考虑以下代码:functionfoo(handlers){callSomeFunction(handlers.onSuccess,handlers.onFailure);}调用者可以:foo({onSuccess:doSomething,onFailure:doSomethingElse});或者只是foo()如果他/她没有什么特别的事情要做。上述代码的问题在于,如果未定义“处理程序”,就像上面简单的foo()调用一样,那么在执行callSomeFunction(handlers.onSuccess,handlers.onFailure)期间将抛出运行时异常).为了处理这种情况,可以将

javascript - 测试一个对象是否是 DOM 事件

从像这样的函数中functioneventHandler(e){//...}是否有一种可靠且有效的方法来确定e是否为DOM事件? 最佳答案 我认为没有可靠的方法可以确定给定对象是否不是DOM事件。typeofe将始终为真正的Event对象返回'object',这没有帮助。您可能检查对象的任何属性都可以存在于真正的事件对象或任何非事件对象中。您可能认为原型(prototype)链可用于确定这一点,但它与#2存在相同的问题(可以轻松复制)。contructor属性看起来很有前途,但可以这样做:functionDummyEvent(){t

Javascript 继承和对象字面量

在JavaScript中,据说对象字面量具有原型(prototype)链接,但是函数对象同时具有原型(prototype)链接和原型(prototype)属性。那么,基于以上所述,是否可以说继承(使用原型(prototype)属性)仅适用于函数对象(构造函数版本)而不适用于对象字面量?此外,要补充的是,__proto__属性在所有浏览器中都无法访问... 最佳答案 精简版:是的:不能通过分配给对象的prototype属性来设置或修改原型(prototype)链。您不能通过使用对象字面量创建对象然后为其提供名为prototype的属性

javascript - 如何访问新打开的选项卡的窗口对象? [在 Firefox 扩展中]

我正在尝试将Greasemonky脚本转换为Firefox的扩展程序,并且我正在尝试让我的扩展程序在打开新选项卡时自动将一个简单的脚本附加到任何网页。我正在从Greasemonkey转换脚本,因为我想利用高级首选项和菜单选项。我使用这个访问标签:varcontainer=gBrowser.tabContainer;container.addEventListener("TabOpen",tabAdded,false);functiontabAdded(event){varnewtabwindow=event.target.____//Idon'tknowwhatgoeshere//at

javascript - 使用javascript将一个对象数组展平为另一个对象数组

我在多种环境和语言中遇到过这个问题,我总是能够解决它,但我想最终找到一个合适的模式来处理这个问题。它来自连接SQL表。通常我会打两个电话,一个用于项目,一个用于评论,但我知道有一种方法可以在一个电话中完成所有操作,然后将结果拉平。我想做的是采用如下所示的数组:[{itemId:1,comments:{commentId:1}},{itemId:1,comments:{commentId:2}},{itemId:2,comments:{commentId:3}}]然后把它变成这样:[{itemId:1,comments:[{commentId:1},{commentId:2}]},{it

javascript - 创建对象并将它们链接到解析和 JS 中的用户

我已经创建了一个系统的基本功能——我目前可以注册、登录等。我目前正在尝试实现一个设置页面,用户可以在其中向他们的帐户添加一个类列表。我查看了文档,但不清楚我需要使用什么。我认为Collections似乎是最合适的,但是文档还是有点不清楚。任何人都可以澄清它的用法(以及我是否应该为此使用Collections),以及更深入的文档/教程的链接吗?希望这是有道理的。 最佳答案 据我了解,您想将用户与设置联系起来。因此,也许可以摆弄Current.User及其功能UserDocsonParse.com也可能有点startertutorial

javascript - Fabricjs 检测鼠标悬停在对象路径上

只有当鼠标在形状本身上而不是包含它的假想正方形上时,才可以在Fabric.js中捕获object:over吗?我有一个jsFiddledemo,其中包含一个U形。您可以看到,即使我将指针放在U内并且没有接触任何线条,它仍然会将其检测为object:over事件。Javascript:varcanvas=newfabric.Canvas("c1",{isDrawingMode:false});canvas.loadFromJSON(objectsJson,function(){canvas.renderAll();});canvas.on("object:over",function()

javascript - IE 11 - console.log 显示对象属性未定义

这是一个非常简短的示例。我将下面的代码复制并粘贴到一个文件中,保存并打开它。在Chrome中工作正常,在ie11中失败。控制台上的输出是胡说八道!这是怎么回事?是否偶然发现了一些奇怪的错误?test.b显然不是未定义的,因为它可以通过JSON解析器和直接对象评估访问。此外,切换日志函数中变量的顺序不会改变未定义的test.b。wtfvartest={a:1,b:{c:1}}console.log(test,JSON.stringify(test),test.b);WTFIE 最佳答案 我最近也遇到了这个问题。问题是我正在处理的页面将

javascript - knockout 组列表为带有对象的更小列表

我有多名员工的每日数据,根据开始时间和结束时间,这可能意味着大量数据。因此,通过映射插件,我将它们映射到一个大列表中,但我需要将它们按员工分组到更小的列表中,这样我就可以为每个员工创建一个表(如更小的View模型),该表具有针对该子集的过滤和排序数据。这是我用静态数据创建的一个基本示例。$(function(){vardata={Employees:[{Id:1,Name:"Employee1",Day:newDate(),Price:12.54},{Id:2,Name:"Employee2",Day:newDate(),Price:112.54},{Id:1,Name:"Employ

javascript - 为什么我不能在创建对象时查看 __proto__?

当我创建一个空白对象时:varo={};为什么新建对象时看不到'__proto__'对象,但添加函数时可以?编辑:为了完整起见,要创建一个真正的空白对象(没有原型(prototype)链接),我们可以这样做:varo=Object.create(null);但出于问题的目的,我将使用o={}语法。编辑2:Thisshowstheprototypelinkage在创建对象时,__proto的__就在那里,但我无法在调试器中查看它们,除非我添加一个函数对象。编辑3:它适用于Firefox: 最佳答案 谁知道呢?这似乎是Chrome调试器